+IDENTIFICATION DIVISION
+PROGRAM-ID Damped_Oscillator
+
+ENVIRONMENT DIVISION
+ENGINE Anabrid-THAT
+REQUIRES COEFFICIENT 5
+REQUIRES INTEGRATOR 2
+REQUIRES INVERTER 1
+REQUIRES SUMMER 2
+
+DATA DIVISION
+OUTPUT OUTPUT.U y
+COEFFICIENT.1 InitialPosition
+COEFFICIENT.2 InitialSpeed
+COEFFICIENT.3 SpringForce
+COEFFICIENT.4 Damping # linear to speed
+COEFFICIENT.5 Mass # 1 / mass
+
+PROGRAM DIVISION
+# Colors being used for wiring
+# - black: y0
+# - blue: y0’
+# - green: y0’’
+# - yellow: y’’, y’
+# - red: y
+-1 -> COEFFICIENT.InitialPosition -> -y0 # -initial position of the mass
+-1 -> COEFFICIENT.InitialSpeed -> y0s’ # y’ is scaled to be within -1..+1
++1, y0s’, y0s’ -> SUMMER -> y0’
+y’’, IC:y0’ -> INTEGRATOR -> -y’
+-y’,IC:-y0 -> INTEGRATOR -> y
+y -> COEFFICIENT.SpringForce -> S*y # springforce times displacement
+-y’ -> INVERTER -> y’
+y’ -> COEFFICIENT.Damping -> D*y’ # damping times speed
+S*y, D*y’ -> SUMMER -> -(Dy’+Sy)
+-(Dy’+Sy) -> COEFFICIENT.Mass -> -1/m*(Dy’+Sy)=y’’
+
+OPERATION DIVISION
+MODE REPEAT
+OP-TIME 80ms